package br.com.comanda.service;

import java.util.List;

import br.com.comanda.dao.autosql.GenericRepository;
import br.com.comanda.dao.autosql.exception.AutoSQLException;
import br.com.comanda.exception.ServiceException;
import br.com.comanda.pojo.Comanda;

public class ComandaService {
	
	@SuppressWarnings("unchecked")
	public static List<Comanda> findAll() throws ServiceException {
		try {			
			GenericRepository repository = GenericRepository.getInstanceFor(Comanda.class);
			return (List<Comanda>) repository.findList(null);
		} catch(AutoSQLException e) {
			throw new ServiceException("findAll() : Houve um erro ao buscar os registros das comandas", e);
		}
	}
	
	/*public static List<Comanda> findAllOrderById() throws ServiceException {
		try {			
			ComandaDao comandaDao = new ComandaDao();
			return comandaDao.findAllOrderById();
		} catch(DaoException e) {
			throw new ServiceException("findAllOrderById() : Houve um erro ao buscar os registros das comandas", e);
		}
	}*/
	
	public void save(Comanda comanda) throws ServiceException {
		try {			
			GenericRepository repository = GenericRepository.getInstanceFor(Comanda.class);
			repository.persistOrMerge(comanda);
		} catch(AutoSQLException e) {
			throw new ServiceException("save() : Houve um erro ao persistir os registros da comanda", e);
		}
	}
	
}